package com.wchat.controller;

import com.wchat.service.AddressBookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * @author : willian fu
 * @date : 2021/8/27
 */
@RestController
@RequestMapping("address/book")
public class AddressBookController {

    @Autowired
    private AddressBookService addressBookService;

    /**
     * 查询通讯录的所有好友列表
     * @return 好友列表list
     */
    @GetMapping("friends")
    public Object getAddressBookFriends(){
       return addressBookService.getAddressBookFriends();
    }

    /**
     * 添加好友
     * @param userId 好友id
     * @param remark 添加时候附加的原因
     * @return 添加结果
     */
    @PostMapping("friends")
    public Object addFriends(@RequestParam Integer userId, @RequestParam(required = false) String remark){
        return addressBookService.addFriends(userId, remark);
    }

    /**
     * 修改好友的备注
     * @param id 好友关系id
     * @param remark 备注
     * @return 修改结果
     */
    @PutMapping("friends")
    public Object updateFriendsRemark(@RequestParam Integer id, @RequestParam String remark){
        return addressBookService.updateFriendsRemark(id, remark);
    }

    /**
     * 删除好友关系
     * @param id 好友关系id
     * @return 删除结果
     */
    @DeleteMapping("friends")
    public Object delFriends(@RequestParam Integer id){
        return addressBookService.delFriends(id);
    }

    /**
     * 同意添加好友
     * @param id 好友关系id
     * @return 添加结果
     */
    @PostMapping("friends/confirm")
    public Object confirmFriendsRequest(@RequestParam Integer id){
        return addressBookService.confirmFriendsRequest(id);
    }

    /**
     * 获取新的好友添加请求
     * @return 所有请求加好友的人
     */
    @GetMapping("friends/request")
    public Object getNewFriends(){
        return addressBookService.getNewFriends();
    }

    /**
     * 搜索好友
     * @param name 手机号/微聊号
     * @return 搜索结果
     */
    @GetMapping("friends/search")
    public Object searchFriends(String name){
        return addressBookService.searchFriends(name);
    }

    /**
     * 查询加入的群组
     * @return 群组列表
     */
    @GetMapping("groups")
    public Object getAddressBookGroups(){
        return addressBookService.getAddressBookGroups();
    }


}
